#include <stdio.h>

int main() {
    // 为什么要有一个标准输出流和一个标准错误流？-> 为了和正确输出分开
    fprintf(stdout, "Hello stdout\n");
    fprintf(stdout, "Hello stdout\n");
    fprintf(stdout, "Hello stdout\n");
    fprintf(stdout, "Hello stdout\n");
    fprintf(stdout, "Hello stdout\n");
    fprintf(stderr, "Hello stderr\n");
    fprintf(stderr, "Hello stderr\n");
    fprintf(stderr, "Hello stderr\n");
    fprintf(stderr, "Hello stderr\n");
    fprintf(stderr, "Hello stderr\n");
    // bash重定向：
    // ./test.out 1>log.txt 2>err.txt 将1和2分别重定向到log.txt和err.txt
    // ./test.out 1>all.txt 2>&1 将1重定向到all.txt, 将2重定向到1(注意重定向顺序，相反的效果自己尝试)
    // ./test.out >&all.txt等价于上面的命令
    // 为什么将1和2重定向到一个文件时，会先打印Hello stderr?

    return 0;
}
